A ledger may store records of transactions, where each transaction may be an entry in the ledger. A ledger may be stored and maintained electronically as a ledger database, where the ledger database is a collection of structured data stored in a memory. While many such methods of storing ledgers exist, a more recent development may have been a distributed ledger network comprising a set of computing devices communicating over a network (e.g., the Internet). One or more of the computing devices of the distributed ledger network store the ledger database (which may be referred to as “computing nodes”, or simply “nodes”) and synchronize the state of the ledger database. Temporary inconsistencies may be reconciled through a consensus algorithm running on one or more of the nodes of the distributed ledger network.
The ledger database may include a blockchain data structure as a method of making and structuring the data comprising the entries in the ledger database. The blockchain data structure may bundle one or more entries into a data block and then generate a value dependent on all data up to any including the data block. Such a data structure may form an “immutable” chain of data in that any later changes in the data (e.g., tampering to try to change an entry in the ledger database) can be detected. Each node of the distributed ledger network may accept and process ledger transactions from a computing device of a user communicating with the distributed ledger network over the network.
An entry in the ledger database may be controlled by a private key. The private key determines who can write to the ledger database, that is, define new ledger transactions. The private key may be an alphanumeric string. The private key may be associated with a public key which is included in the entry of the ledger database. The public key may be referred to as a “public address”.
A private key and the corresponding public address may be associated with an asset and/or a number of units of account, and may be generally referred to as a “ledger token”. The number of the units of account may be a quantity of cryptocurrency that may be an inherent medium of exchange of the distributed ledger network. The asset the ledger token may be associated with can be a commodity (e.g., gold, fiat currency, corn), an intangible asset (e.g., stocks, bonds), and/or may comprise a self-executing set of software code that operates within the distributed ledger network (e.g., a self-executing contract, or “smart contract”). The entries in the ledger database representing transactions may include transfers of control and/or ownership of a ledger token. The public address may be generated in secret but then exposed so that it can receive ledger tokens and/or cryptocurrency. However, the private key may be generated in secret and only exposed at the time of sending the ledger transaction to move the ledger token from one public address to another.
The private key controlling the ledger token, for example an alphanumeric string, may therefore be seen as the asset of a user of the distributed ledger network. The owner is the user who controls the private key.
Distributed ledger networks may pose a number if challenges for users. First, the private key may be easily copied and stolen. The first user to now act will now be able to transfer the entire ledger token to a new public address solely he or she controls. The true owner may be unaware another person is capable of stealing the true owner's ledger token. Once lost or stolen, the ledger token may be impossible to recover. Some distributed ledger networks include no preferred way to store private keys. This may require technical ability to safely own and transact in ledger tokens and, unless carefully managed, can lead to lost or stolen private keys.
Similarly, a “wallet application” may be a computer program for maintaining one or more instances of the private key. The wallet application may automate some processes (e.g., generation of the public-private key pair), present a more usable interface, and may have the capability to store private keys from multiple instances of the distributed ledger network (e.g., Bitcoin, Ethereum, EOS, Ripple, etc.).
However, the wallet application may also have challenges. The wallet application may often be a general computing device utilized by a user for other purposes (e.g., a smartphone, a desktop computer). This may increase likelihood of hack, theft, or loss due to exposure to what may be many other networks and computer applications. For these reasons a user may decide it is appropriate to store modest amounts of value in the wallet application (e.g., $100, $1000) but not large amounts of value (e.g., $100,000, $1Bn). For valuable ledger tokens, some users have resorted to recording private keys on paper (a form of “cold storage”) stored in physical vaults.
There may be significant number of users who may wish to hold a ledger token and/or amount of cryptocurrency but may not wish to risk managing the private key or author authorization means. Rather, they may wish to have a trusted party take custody of a ledger token and/or cryptocurrency on their behalf. This may include a range of investment professionals who have no understanding of the underlying technology but who have prescribed custody requirements for their clients' assets (e.g., prescribed by the Securities and Exchange Commission).
This provides an opportunity for an organization to act as a professional custodian. However, the organization must then meet the technical challenges of managing the private key in the context of what may be corporate-sized computer networks and multiple employees, contractors, or other agents. For example, the private key may now be under threat from internal theft and/or attention by more sophisticated hackers. Even where custody measures have been carefully prescribed, cold storage may create a substantial delay in sending a ledger transaction or converting one instance of the cryptocurrency (e.g., Bitcoin) to another instance of the cryptocurrency (e.g., Ethereum). On the other hand, an electronic login (e.g. via a smartphone app or web portal) that permits sending transactions (e.g., for convenience) utilizing the private key held by the custodian may create hacking risk. For a secure change in custody, an “on-ledger” transaction moving the ledger token from one public address to another public address may be required.
In addition, the distributed ledger network may pose some challenges that may not be experienced in traditional assets and/or custodial environments that can create confusion as to ownership and/or create regulatory compliance risk. For example, a distributed ledger network may have the ability to “fork” (e.g., split into two instances of the distributed ledger network in which the private key may be usable on each fork), the custody may also lead to uncertainty as to who owns the ledger token and/or cryptocurrency of the ledger fork. The organization may also have little or no ability to prevent the transfer of cryptocurrency to the public address of the ledger token that is in custody. This may cause compliance concerns, for example money laundering or other rules implicating acceptance of value. It may be difficult for the organization to predefine the rules for such events sufficient to certain users.
As a result of these challenges, there may continue to be significant cost and/or risk in an organization acting as a custodian of the private key (and/or other authorization data) that confers control and/or ownership of a ledger token and/or any associated quantity of cryptocurrency. The organization may continue to be subject to loss, theft (both internal and external), relatively slow transaction times, regulatory risk, and/or inflexibility in defining automatic procedures for a wide range of circumstances that may arise from the distributed ledger network. The organization may be unable to comply with custody rules and therefore serve a wider userbase. As a result, the organization may lose money, fail to acquire customers, and may be at a competitive disadvantage.